home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 7
/
FM Towns Free Software Collection 7.iso
/
game
/
map_quiz
/
a_europa.bas
< prev
next >
Wrap
BASIC Source File
|
1993-11-30
|
13KB
|
321 lines
1000 ' ******************************************************************
1010 ' * *
1020 ' * :::::::::::: A_EUROPA.BAS :::::::::::::: *
1030 ' * Programmed By T.K.Mosaku *
1040 ' * ~~~~~~~~~~~~~~~~~~~~~~~~ *
1050 ' ******************************************************************
1060 '
1070 '** 画面表示 **
1080 MENU=1
1090 LOAD@"D_EUPMAP.TIF", (0, 0)
1100 LOAD@"F_SWICH.TIF", (7, 7)
1110 LOAD@"F_SWICH3.TIF", (87,7)
1120 '
1130 '** MENU 画面 **
1140 *MENU_GAMEN
1150 CLS 4:SIR=0
1160 LINE (205,416)-(395,435),PSET,%2,BF,%13
1170 LOCATE 4, 21:COLOR 1:PRINT"世界の国名クイズ・・・・・何問に挑戦しますか。"
1180 LOCATE 25,22:COLOR 2:PRINT" 5問 10問 20問 30問 "
1190 LOCATE 48,23:COLOR 1:PRINT"左クリックして選んで下さい。"
1200 '
1210 MOUSE 5:MOUSE 0:MOUSE 1,596,353,1
1220 '
1230 '** MENU 選択 **
1240 X=MOUSE(4,0):Y=MOUSE(5,0)
1250 IF X>93 AND X<117 AND Y>27 AND Y<40 THEN SIR=1 :GOTO *SIRABERU
1260 IF X>18 AND X<38 AND Y>18 AND Y<38 THEN GOTO *MENU_1
1270 IF X>51 AND X<71 AND Y>18 AND Y<38 THEN GOTO *OWARI_E
1280 IF X>217 AND X<239 AND Y>420 AND Y<433 THEN PNO= 5:GOTO *MOZI
1290 IF X>258 AND X<287 AND Y>420 AND Y<433 THEN PNO=10:GOTO *MOZI
1300 IF X>305 AND X<336 AND Y>420 AND Y<433 THEN PNO=20:GOTO *MOZI
1310 IF X>353 AND X<383 AND Y>420 AND Y<433 THEN PNO=30:GOTO *MOZI
1320 GOTO 1240
1330 '
1340 '** 画面設定 **
1350 *MOZI
1360 QQN=0
1370 IF QQN=2 THEN GOTO 1620
1380 CLS 4
1390 LINE (205,416)-(442,435),PSET,%4,BF
1400 LOAD@ "E_GRAPH.TIF",(165,454)
1410 LOCATE 5, 21:COLOR 1:PRINT"問 題"
1420 LOCATE 25,22:COLOR 2:PRINT" "
1430 LOCATE 20,23:COLOR 1
1440 PRINT"今までの成績 正答数 正答率 %"
1450 IF QQN=1 THEN QQN=QQN+1:GOTO 1620
1460 '
1470 '** MAIN LOOTINE **
1480 CY=0:CN=0:CCN=0:DIM KIR(PNO-1):DIM NFW(PNO):KIRN=0:QQN=0
1490 '
1500 MOUSE 5:MOUSE 0:MOUSE 1,365,207,1':MOUSE 4,8,8,611,364
1510 '
1520 RANDOMIZE TIME
1530 NFW(0)=INT(RND*33)
1540 T=1
1550 IF CCN=PNO THEN GOTO 1700
1560 N=INT(RND*33)+1
1570 FOR J=0 TO T-1
1580 IF NFW(J)=N THEN GOTO 1560
1590 NEXT J
1600 NFW(T)=N:QQ=N
1610 MOUSE 5:MOUSE 0:MOUSE 1,365,207,1:MOUSE 4,8,8,611,364
1620 TTN=0
1630 IF QQ=<10 THEN Q=QQ :GOTO *M0
1640 IF QQ>10 AND QQ=<20 THEN Q=QQ-10:GOTO *M1
1650 IF QQ>20 AND QQ=<30 THEN Q=QQ-20:GOTO *M2
1660 IF QQ>30 AND QQ=<40 THEN Q=QQ-30:GOTO *M3
1670 CCN=CCN+1:T=T+1:GOTO 1550
1680 T=T+1:GOTO 1550
1690 '
1700 IF KIRN=0 THEN 3520 ELSE 3290
1710 '
1720 *M0:ON Q GOTO *A1, *A2, *A3, *A4, *A5, *A6, *A7, *A8, *A9, *A10
1730 *M1:ON Q GOTO *A11,*A12,*A13,*A14,*A15,*A16,*A17,*A18,*A19,*A20
1740 *M2:ON Q GOTO *A21,*A22,*A23,*A24,*A25,*A26,*A27,*A28,*A29,*A30
1750 *M3:ON Q GOTO *A31,*A32,*A33,*A34
1760 '
1770 *A1 :A$="アイスランド゙" :XP=168:YP=67 :GOTO *SENTAKU
1780 *A2 :A$="アイルランド" :XP=179:YP=175:GOTO *SENTAKU
1790 *A3 :A$="イギリス" :XP=205:YP=198:GOTO *SENTAKU
1800 *A4 :A$="ポルトガル" :XP=129:YP=293:GOTO *SENTAKU
1810 *A5 :A$="スペイン" :XP=164:YP=283:GOTO *SENTAKU
1820 *A6 :A$="フランス" :XP=208:YP=229:GOTO *SENTAKU
1830 *A7 :A$="モナコ" :XP=225:YP=302:GOTO *SENTAKU
1840 *A8 :A$="イタリア" :XP=273:YP=296:GOTO *SENTAKU
1850 *A9 :A$="スイス" :XP=238:YP=247:GOTO *SENTAKU
1860 *A10:A$="リヒテンシュタイン":XP=259:YP=304:GOTO *SENTAKU
1870 *A11:A$="オ-ストリア" :XP=287:YP=240:GOTO *SENTAKU
1880 *A12:A$="ベルギ-" :XP=227:YP=208:GOTO *SENTAKU
1890 *A13:A$="オランダ" :XP=233:YP=198:GOTO *SENTAKU
1900 *A14:A$="ルクセンブルグ" :XP=210:YP=244:GOTO *SENTAKU
1910 *A15:A$="ドイツ" :XP=270:YP=199:GOTO *SENTAKU
1920 *A16:A$="ギリシャ" :XP=328:YP=323:GOTO *SENTAKU
1930 *A17:A$="アルバニア" :XP=309:YP=298:GOTO *SENTAKU
1940 *A18:A$="ユ-ゴスラビア" :XP=294:YP=262:GOTO *SENTAKU
1950 *A19:A$="イスタンブ-ル" :XP=356:YP=296:GOTO *SENTAKU
1960 *A20:A$="ブルガリア" :XP=331:YP=280:GOTO *SENTAKU
1970 *A21:A$="ル-マニア" :XP=342:YP=265:GOTO *SENTAKU
1980 *A22:A$="モルドヴァ" :XP=355:YP=247:GOTO *SENTAKU
1990 *A23:A$="ハンガリ-" :XP=306:YP=247:GOTO *SENTAKU
2000 *A24:A$="チェコスロバキュア":XP=276:YP=223:GOTO *SENTAKU
2010 *A25:A$="ポ-ランド" :XP=315:YP=198:GOTO *SENTAKU
2020 *A26:A$="ノルウェ-" :XP=267:YP=138:GOTO *SENTAKU
2030 *A27:A$="スウェ-デン" :XP=300:YP=144:GOTO *SENTAKU
2040 *A28:A$="フィンランド" :XP=324:YP=136:GOTO *SENTAKU
2050 *A29:A$="エストニア" :XP=325:YP=144:GOTO *SENTAKU
2060 *A30:A$="ラトビア" :XP=323:YP=166:GOTO *SENTAKU
2070 *A31:A$="リトアニア" :XP=332:YP=182:GOTO *SENTAKU
2080 *A32:A$="ベラル-シ" :XP=347:YP=182:GOTO *SENTAKU
2090 *A33:A$="ウクライナ" :XP=367:YP=211:GOTO *SENTAKU
2100 *A34:A$="ロシア連邦" :XP=373:YP=144:GOTO *SENTAKU
2110 '
2120 *SENTAKU
2130 IF TTN=0 THEN GOTO *WRITE
2140 IF TTN=1 THEN GOTO *WRITE_NO
2150 IF TTN=2 THEN GOTO *SIRABE_WRITE
2160 '
2170 *WRITE
2180 IF TTN=2 THEN GOTO *SIRABE_WRITE
2190 LOCATE 14,21:COLOR 2:PRINT " "
2200 LOCATE 14,21:COLOR 2:PRINT A$
2210 GOTO 2250
2220 '
2230 *POINT
2240 MOUSE 5:MOUSE 0:MOUSE 1,X,Y,1: MOUSE 4,8,8,611,364:GOTO 2260
2250 MOUSE 5:MOUSE 0:MOUSE 1,365,207,1:MOUSE 4,8,8,611,364
2260 B=1
2270 X=MOUSE(4,0):Y=MOUSE(5,0)
2280 IF X>93 AND X<117 AND Y>27 AND Y<40 THEN GOTO *SIRABERU
2290 IF X>125 AND X<147 AND Y>27 AND Y<40 THEN BN=0 :GOTO *MODORU
2300 IF X>18 AND X<38 AND Y>18 AND Y<38 THEN GOTO *MENU_E
2310 IF X>51 AND X<71 AND Y>18 AND Y<38 THEN GOTO *OWARI_E
2320 IF X>166 AND X<171 AND Y>65 AND Y<70 THEN TT=1 :GOTO *BUNKI
2330 IF X>177 AND X<182 AND Y>173 AND Y<178 THEN TT=2 :GOTO *BUNKI
2340 IF X>203 AND X<208 AND Y>196 AND Y<201 THEN TT=3 :GOTO *BUNKI
2350 IF X>127 AND X<132 AND Y>291 AND Y<296 THEN TT=4 :GOTO *BUNKI
2360 IF X>162 AND X<167 AND Y>281 AND Y<286 THEN TT=5 :GOTO *BUNKI
2370 IF X>206 AND X<211 AND Y>227 AND Y<232 THEN TT=6 :GOTO *BUNKI
2380 IF X>223 AND X<228 AND Y>300 AND Y<305 THEN TT=7 :GOTO *BUNKI
2390 IF X>271 AND X<276 AND Y>294 AND Y<299 THEN TT=8 :GOTO *BUNKI
2400 IF X>236 AND X<241 AND Y>245 AND Y<250 THEN TT=9 :GOTO *BUNKI
2410 IF X>257 AND X<262 AND Y>302 AND Y<307 THEN TT=10:GOTO *BUNKI
2420 IF X>285 AND X<290 AND Y>238 AND Y<243 THEN TT=11:GOTO *BUNKI
2430 IF X>225 AND X<230 AND Y>206 AND Y<211 THEN TT=12:GOTO *BUNKI
2440 IF X>231 AND X<236 AND Y>196 AND Y<201 THEN TT=13:GOTO *BUNKI
2450 IF X>208 AND X<213 AND Y>242 AND Y<247 THEN TT=14:GOTO *BUNKI
2460 IF X>268 AND X<273 AND Y>197 AND Y<202 THEN TT=15:GOTO *BUNKI
2470 IF X>236 AND X<331 AND Y>321 AND Y<326 THEN TT=16:GOTO *BUNKI
2480 IF X>207 AND X<312 AND Y>296 AND Y<301 THEN TT=17:GOTO *BUNKI
2490 IF X>292 AND X<297 AND Y>260 AND Y<265 THEN TT=18:GOTO *BUNKI
2500 IF X>254 AND X<359 AND Y>294 AND Y<299 THEN TT=19:GOTO *BUNKI
2510 IF X>278 AND X<334 AND Y>278 AND Y<283 THEN TT=20:GOTO *BUNKI
2520 IF X>340 AND X<345 AND Y>263 AND Y<268 THEN TT=21:GOTO *BUNKI
2530 IF X>353 AND X<358 AND Y>245 AND Y<250 THEN TT=22:GOTO *BUNKI
2540 IF X>304 AND X<309 AND Y>245 AND Y<250 THEN TT=23:GOTO *BUNKI
2550 IF X>274 AND X<279 AND Y>221 AND Y<226 THEN TT=24:GOTO *BUNKI
2560 IF X>313 AND X<318 AND Y>196 AND Y<201 THEN TT=25:GOTO *BUNKI
2570 IF X>265 AND X<270 AND Y>136 AND Y<141 THEN TT=26:GOTO *BUNKI
2580 IF X>298 AND X<303 AND Y>142 AND Y<147 THEN TT=27:GOTO *BUNKI
2590 IF X>322 AND X<328 AND Y>134 AND Y<139 THEN TT=28:GOTO *BUNKI
2600 IF X>323 AND X<328 AND Y>142 AND Y<147 THEN TT=29:GOTO *BUNKI
2610 IF X>321 AND X<326 AND Y>164 AND Y<169 THEN TT=30:GOTO *BUNKI
2620 IF X>330 AND X<335 AND Y>180 AND Y<185 THEN TT=31:GOTO *BUNKI
2630 IF X>345 AND X<350 AND Y>180 AND Y<185 THEN TT=32:GOTO *BUNKI
2640 IF X>365 AND X<370 AND Y>209 AND Y<214 THEN TT=33:GOTO *BUNKI
2650 IF X>371 AND X<376 AND Y>142 AND Y<147 THEN TT=34:GOTO *BUNKI
2660 IF B=1 THEN 2670 ELSE 2270
2670 'MOUSE 5:MOUSE 0:MOUSE 1,365,207,1:MOUSE 4,8,8,611,364
2680 B=B+1
2690 GOTO 2270
2700 '
2710 *BUNKI
2720 IF BN=0 THEN *QUIZ ELSE *SIRABE
2730 *QUIZ
2740 IF QQ=TT THEN *YES ELSE *NO
2750 *SIRABE
2760 TTN=2:GOTO *CHECK
2770 '
2780 *YES
2790 CY=CY+1
2800 LOCATE 15,22:COLOR 3: PRINT"★★★ 正解です。 ★★★"
2810 PCMPLAY YES_S%
2820 GOSUB *COUNT
2830 WAIT 100
2840 WAIT 100
2850 LOCATE 15,22:COLOR 1:PRINT" "
2860 IF QQN=2 THEN GOTO 3460
2870 GOTO 1670
2880 '
2890 *NO
2900 CN=CN+1:TTN=1
2910 LOCATE 15,22:COLOR 3:PRINT"☆☆☆ 残念でした。 ☆☆☆"
2920 PCMPLAY NO_S%
2930 XPP=XP:YPP=YP
2940 *CHECK
2950 IF TT=<10 THEN Q=TT :GOTO *M0
2960 IF TT>10 AND TT=<20 THEN Q=TT-10:GOTO *M1
2970 IF TT>20 AND TT=<30 THEN Q=TT-20:GOTO *M2
2980 IF TT>30 AND TT=<40 THEN Q=TT-30:GOTO *M3
2990 *WRITE_NO
3000 LOCATE 10,22:COLOR 3
3010 PRINT"★★★ 残念でした。 ★★★ そこは 『";A$;"』 です。"
3020 GOSUB *COUNT
3030 IF QQN=0 THEN GOSUB *KIROKU
3040 WAIT 70
3050 CIRCLE (XPP,YPP),6,5,,,,F,XOR
3060 WAIT 250
3070 CIRCLE (XPP,YPP),6,5,,,,F,XOR
3080 LOCATE 10,22:COLOR 1:PRINT SPACE$(60)
3090 IF QQN=2 THEN GOTO 3460
3100 GOTO 1670
3110 '
3120 *COUNT
3130 CT=CY+CN
3140 CC=INT((CY/CT)*100)
3150 CG=INT(CC*3):IF CG>297 THEN CG=297
3160 LOCATE 44,23:PRINT " "
3170 LOCATE 70,23:PRINT " "
3180 LOCATE 44,23:COLOR 3:PRINT "(";CY;"/";CT;") "
3190 LOCATE 70,23:COLOR 3:PRINT CC
3200 LINE (280, 457)-(578, 461),PSET,%4,BF
3210 LINE (280, 457)-(281+CG,461),PSET,%3,BF
3220 LINE (280+CG,457)-(578, 461),PSET,%4,BF
3230 RETURN
3240 '
3250 *KIROKU
3260 KIR(KIRN)=QQ:KIRN=KIRN+1
3270 RETURN
3280 '
3290 '** 確認 選択 **
3300 MOUSE 5:CLS 4:LOAD@ "E_CLEAR.TIF",(165,454)
3310 LOCATE 10,21 :COLOR 2:PRINT"間違いを確かめますか?"
3320 LOCATE 20,22 :COLOR 1:PRINT" 確かめます。"
3330 LOCATE 20,23 :COLOR 1:PRINT" 確かめません。"
3340 MOUSE 5:MOUSE 0:MOUSE 1,596,353,1
3350 X=MOUSE(4,0):Y=MOUSE(5,0)
3360 IF X>18 AND X<38 AND Y>18 AND Y<38 THEN GOTO *MENU_E
3370 IF X>51 AND X<71 AND Y>18 AND Y<38 THEN GOTO *OWARI_E
3380 IF X>199 AND X<268 AND Y>418 AND Y<432 THEN GOTO 3420
3390 IF X>199 AND X<288 AND Y>438 AND Y<453 THEN GOTO 3530
3400 GOTO 3350
3410 '
3420 '** 確認 ROOTINE **
3430 PNO=KIRN-1:QQN=1:CY=0:CN=0
3440 FOR J=0 TO PNO
3450 QQ=KIR(J):GOTO 1370
3460 NEXT J
3470 MOUSE 5:CLS 4:LOAD@ "E_CLEAR.TIF",(165,454)
3480 LOCATE 10,21 :COLOR 2:PRINT"もう一度、間違いを確かめますか?"
3490 GOTO 3320
3500 '
3510 '** END 選択 **
3520 LOAD@ "E_CLEAR.TIF",(165,454)
3530 CLS 4:ERASE KIR:ERASE NFW
3540 LOCATE 10,21 :COLOR 2:PRINT"続けますか?"
3550 LOCATE 20,22 :COLOR 1:PRINT" 続けます。"
3560 LOCATE 20,23 :COLOR 1:PRINT" 終わります。"
3570 MOUSE 5:MOUSE 0:MOUSE 1,596,353,1
3580 X=MOUSE(4,0):Y=MOUSE(5,0)
3590 IF X>18 AND X<38 AND Y>18 AND Y<38 THEN GOTO *MENU_E
3600 IF X>51 AND X<71 AND Y>18 AND Y<38 THEN GOTO *OWARI_E
3610 IF X>199 AND X<268 AND Y>418 AND Y<432 THEN GOTO 1120
3620 IF X>199 AND X<288 AND Y>438 AND Y<453 THEN GOTO 3650
3630 GOTO 3580
3640 '
3650 IF MENU=1 THEN 3670 ELSE 3860
3660 '
3670 CLS 4
3680 LOCATE 10,21 :COLOR 2:PRINT"メニュ-に戻りますか?"
3690 LOCATE 20,22 :COLOR 1:PRINT" メニュ-に戻ります。"
3700 LOCATE 20,23 :COLOR 1:PRINT" メニュ-に戻らず終わります。"
3710 MOUSE 5:MOUSE 0:MOUSE 1,596,353,1
3720 X=MOUSE(4,0):Y=MOUSE(5,0)
3730 IF X>18 AND X<38 AND Y>18 AND Y<38 THEN GOTO *MENU_E
3740 IF X>51 AND X<71 AND Y>18 AND Y<38 THEN GOTO *OWARI_E
3750 IF Y>418 AND Y<432 THEN GOTO 3820
3760 IF Y>438 AND Y<453 THEN GOTO 3860
3770 GOTO 3720
3780 '
3790 *MENU_E
3800 ERASE KIR:ERASE NFW
3810 *MENU_1
3820 CHAIN "B_MENU2.BAS",,ALL
3830 RUN "B_MENU2.BAS"
3840 '
3850 *OWARI_E
3860 CHAIN "B_END.BAS",,ALL
3870 RUN "B_END.BAS"
3880 '
3890 *SIRABERU
3900 IF SIR=1 THEN GOTO 3940
3910 LOCATE 14,21:PRINT " "
3920 LOCATE 14,21:COLOR 3:PRINT "クイズ中断中, 調べモードです。"
3930 GOTO 3970
3940 LINE(199,415)-(457,437),PSET,%4,BF:LOCATE 24,23:PRINT SPACE$(55)
3950 LOCATE 24,21:PRINT " "
3960 LOCATE 24,21:COLOR 3:PRINT "クイズ中断中, 調べモードです。"
3970 LOCATE 24,22:PRINT SPACE$(50)
3980 BN=1:GOTO *POINT
3990 '
4000 *SIRABE_WRITE
4010 LOCATE 15,22:COLOR 3:PRINT SPACE$(50)
4020 FOR T=5 TO 2 STEP -1
4030 LOCATE 15,22:COLOR T:PRINT"そこは 『";A$;"』 です。"
4040 WAIT 25
4050 NEXT
4060 WAIT 50:GOTO *POINT
4070 '
4080 *MODORU
4090 IF SIR=1 THEN GOTO *MENU_GAMEN'
4100 LOCATE 24,21:PRINT " "
4110 LOCATE 15,22:PRINT SPACE$(50)
4120 GOTO 1680
4130 '
4140 *MOUS
4150 MOUSE 5:MOUSE 0:MOUSE 1,596,353,1
4160 X=MOUSE(4,0):Y=MOUSE(5,0)
4170 LOCATE 55,22:PRINT X;Y
4180 GOTO 4160
4190 '